name: publish

on:
  push:
    tags:
      - "v*"

permissions:
  contents: read

jobs:
  build:
    permissions:
      contents: write # for actions/create-release to create a release
    name: Upload Release Asset
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4
      - name: Get tag
        id: get_version
        run: echo VERSION=$(echo $GITHUB_REF | cut -d / -f 3) >> "$GITHUB_OUTPUT"
      - name: Create Zip Folder
        working-directory: dist
        run: zip -r ../html5-boilerplate_${{ steps.get_version.outputs.VERSION }}.zip ./
      - name: Create Release
        id: create_release
        uses: actions/create-release@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          tag_name: ${{ github.ref }}
          release_name: Release ${{ github.ref }}
          draft: false
          prerelease: false
      - name: Upload Release Asset
        id: upload-release-asset
        uses: actions/upload-release-asset@v1
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          upload_url: ${{ steps.create_release.outputs.upload_url }}
          asset_path: ./html5-boilerplate_${{ steps.get_version.outputs.VERSION }}.zip
          asset_name: html5-boilerplate_${{ steps.get_version.outputs.VERSION }}.zip
          asset_content_type: application/zip
      - name: Setup Node
        uses: actions/setup-node@v4
        with:
          node-version: 18
          registry-url: https://registry.npmjs.org/
      - name: publish npm
        run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.npm_token}}
